<HTML>

<!-- This is a hypertext file. -->
<!-- Either view it using a hypertext browser, such as NCSA Mosaic, -->
<!-- or ignore the html markup tags enclosed in angle-brackets -->

<TITLE> Intermud INSTALL </TITLE>
<H1> INSTALL </H1>
<P>
This UDP port handling (Intermud) system was designed for muds using the
Amylaar driver, but it should run on any mud that supports mappings and an
efun for sending UDP packets.  If you are not using an Amylaar driver some of
the specifics of the installation instructions may not apply to you.
</P>
<UL> <P>
<LI> Get hold of an INETD_HOSTS file.  This file is not supplied with
     this distribution, but an up-to-date copy should be available from
     the site where you got this package.
</P> <P>
<LI> Incoming udp packets should be directed to the function
     receive_udp(sender, packet) in inetd.c.  This is done by including
     the following function in master.c:
<LISTING>
	receive_imp(string sender, string packet) {
	    INETD->receive_udp(sender, packet);
	}
</LISTING>
</P> <P>
<LI> Make sure the inetd has privilege to use the function send_imp()
     (this is controlled by the privilege_violation() function in
     master.c), and to use "read_file" on the INETD_HOSTS file
     (valid_read() in master.c).
</P> <P>
<LI> Edit the config section of udp.h.  This file should probably be
     placed in a directory listed in your include path.
</P> <P>
<LI> You may need to modify some of the definitions at the top of the
     inetd.c file for your system, particularly if you are not using an
     Amylaar driver.
</P> <P>
<LI> Make any changes neccessary to the files supplied (as described below).
</P> <P>
<LI> Add your mud to the INETD_HOSTS file.
</P> </UL>
<P>
Your mud will need to be added to the host lists at other muds for the system
to realise its full potential, but it will operate satisfactorily regardless.
</P> <P>
It is a good idea to test out the intermud system at your own site to iron out
any problems you may encounter.  You will need to write your own intermud
commands for players to use, but the command files in the udp directory should
give you some good examples of usage.  Some example commands and code can be
found in the examples and contrib directories.  The PROTOCOL file should also
provide some useful information.
</P>
<DL> <P>
<DT>udp/who.c	<DD>Handles who requests from remote sites.  The DATA field should
		be a string containing the who information.
</P> <P>
<DT>udp/finger.c	<DD>DATA field should be a string containing the finger info.
</P> <P>
<DT>udp/channel.c	<DD>This handles all incoming channel messages.  It uses the
		header "CHANNEL" to identify the channel name, "CMD" to
		identify a special command, and DATA for the message body. The
		message is formatted and sent to all wizards on the mud.
		Incoming messages can be blocked by setting earmuffs != 1.
		This basic system relies on a function
		receive_channel_msg(string channel, string msg) being defined
		in all players who will receive the channel messages.  It
		should pass on any received messages to player as long as
		'msg' != 0.  It should return 1 if the player is listening to
		the specified channel and 0 otherwise. You will probably want
		to alter this module to incorporate it into your local channel
		system or to make it more user-friendly.
</P> <P>
<DT>udp/man.c	<DD>Handles remote man requests.  The DATA field should be a
		string containing the manual page or information.
</P> <P>
<DT>udp/query.c	<DD>Change the EMAIL #define to yourself (or a relevant email).
</P> <P>    
<DT>udp/ftp.c	<DD>Define the FTP_ROOT_DIR as appropriate.  You will need to make
                sure this file has privilege to read (and write if PUTFILE is
                defined) to files inside FTP_ROOT_DIR.
</P> </DL>

</HTML>
